package com.shuda.business.channel.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 分发方案DTO类
 */
@Data
@Schema(name = "DistributionSchemeDTO", description = "分发方案DTO")
public class DistributionSchemeDTO {

    @Schema(description = "方案ID")
    private Long id;

    @Schema(description = "方案名称")
    private String schemeName;

    @Schema(description = "方案编码")
    private String schemeCode;

    @Schema(description = "上游渠道ID")
    private Long upstreamChannelId;

    @Schema(description = "上游渠道名称")
    private String upstreamChannelName;

    @Schema(description = "下游渠道ID")
    private Long downstreamChannelId;

    @Schema(description = "下游渠道名称")
    private String downstreamChannelName;

    @Schema(description = "分发规则配置(JSON)")
    private String distributionRules;

    @Schema(description = "地域规则配置(JSON)")
    private String regionRules;

    @Schema(description = "产品类型规则配置(JSON)")
    private String productTypeRules;

    @Schema(description = "客户画像规则配置(JSON)")
    private String customerProfileRules;

    @Schema(description = "数据池配置(JSON)")
    private String dataPoolConfig;

    @Schema(description = "方案状态(enabled-启用,disabled-禁用)")
    private String schemeStatus;

    @Schema(description = "优先级")
    private Integer priority;

    @Schema(description = "描述")
    private String description;

    @Schema(description = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    @Schema(description = "更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;
}